Most computer or data processing systems include one or more host computers (e.g., servers) and one or more storage systems that store data accessed by the hosts. Conventionally, volumes of storage stored on a storage system are treated as peripherals to the host, which carries with it several implications. First, the host appears to own the data that it stores in storage volumes that are specifically assigned to the host. Second, the host typically is responsible for management (e.g., protection, replication, migration, etc.) of data that is stored on the storage volumes allocated to the host. Third, the host typically determines the placement and layout of its data across the storage volumes assigned to it. Fourth, storage volumes are perceived as being assigned to particular physical storage systems.
More recently, the concept of storage virtualization in a network environment has been proposed, see e.g., Storage Networking Virtualization, by Blunden, Berx-Debeys and Sim, IBM Redbooks (December 2000). Storage virtualization employs a different data-centric model in which storage units are no longer perceived as peripherals assigned to a particular host or physical storage device. Under this model, host devices need not be aware of the physical placement or layout of data. Thus, management of the data may be moved away from individual hosts, and can be built into a storage infrastructure, e.g., comprised of a number of storage systems connected over a storage area network (SAN).
It is an object of the present invention to provide a method and apparatus for implementing storage virtualization.